package com.gqj.meter.mapper;

import com.gqj.meter.domain.MdInTaskDetails;
import com.gqj.meter.domain.MdOutTaskDetails;

import java.util.List;

/**
 * 出入库明细Mapper接口
 *
 * @author lxq
 * @date lxq-02-10
 */
public interface MdOutTaskDetailsMapper {
    /**
     * 查询出入库明细
     *
     * @param outTaskDetailsId 出入库明细主键
     * @return 出入库明细
     */
    public MdOutTaskDetails selectMdOutTaskDetailsByOutTaskDetailsId(Long outTaskDetailsId);

    /**
     * 查询出入库明细列表
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 出入库明细集合
     */
    public List<MdOutTaskDetails> selectMdOutTaskDetailsList(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 导出出入库明细列表
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 出入库明细集合
     */
    public List<MdOutTaskDetails> exportMdOutTaskDetailsListExcel(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 查询出入库明细数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 出入库明细数量
     */
    public int selectMdOutTaskDetailsCount(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 查询执行出入库明细数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 出入库明细数量
     */
    public MdOutTaskDetails selectCarryMdOutTaskDetailsCount(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 新增出入库明细
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int insertMdOutTaskDetails(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 修改出入库明细
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int updateMdOutTaskDetails(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 删除出入库明细
     *
     * @param outTaskDetailsId 出入库明细主键
     * @return 结果
     */
    public int deleteMdOutTaskDetailsByOutTaskDetailsId(Long outTaskDetailsId);

    /**
     * 批量删除出入库明细
     *
     * @param outTaskDetailsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMdOutTaskDetailsByOutTaskDetailsIds(Long[] outTaskDetailsIds);

    /**
     * 删除出入库明细
     *
     * @param outTaskNo 出入库任务编号
     * @return 结果
     */
    public int deleteMdOutTaskDetailsByOutTaskNo(String outTaskNo);

    /**
     * 查询本周出库数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int getThisWeekOutNum(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 查询上周出库数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int getLastWeekOutNum(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 查询本月出库数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int getThisMonthOutNum(MdOutTaskDetails mdOutTaskDetails);

    /**
     * 查询上月出库数量
     *
     * @param mdOutTaskDetails 出入库明细
     * @return 结果
     */
    public int getLastMonthOutNum(MdOutTaskDetails mdOutTaskDetails);
}
